home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4364 / 4364.xpi / chrome / elemhidehelper.jar / content / overlay.js < prev    next >
Text File  |  2009-07-01  |  4KB  |  136 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is Adblock Plus Element Hiding Helper.
  15.  *
  16.  * The Initial Developer of the Original Code is
  17.  * Wladimir Palant.
  18.  * Portions created by the Initial Developer are Copyright (C) 2006-2009
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *
  23.  * ***** END LICENSE BLOCK ***** */
  24.  
  25. // This will be called from overlayBasic - only if Adblock Plus is installed
  26. // and the version is correct
  27. function ehhInit2() {
  28.     var prefService = Components.classes["@mozilla.org/preferences-service;1"]
  29.                                                             .getService(Components.interfaces.nsIPrefService);
  30.     var branch = prefService.getBranch("extensions.adblockplus.");
  31.  
  32.     if (document.getElementById("abp-status-popup"))
  33.         document.getElementById("abp-status-popup").addEventListener("popupshowing", ehhFillPopup, false);
  34.     if (document.getElementById("abp-toolbar-popup"))
  35.         document.getElementById("abp-toolbar-popup").addEventListener("popupshowing", ehhFillPopup, false);
  36.     window.addEventListener("blur", ehhHideTooltips, true);
  37.     ehhGetBrowser().addEventListener("select", ehhStop, false);
  38.  
  39.     // Make sure we configure the shortcut key even if the default pref isn't there.
  40.     // TODO: Remove once ABP 1.1 is minimal supported version.
  41.     if ("abpConfigureKey" in window) {
  42.         var defaultBranch = prefService.getDefaultBranch("extensions.adblockplus.");
  43.         try {
  44.             // Seems to be the only way to test whether the pref really exists in the default branch
  45.             defaultBranch.getCharPref("ehh-selectelement_key");
  46.         }
  47.         catch(e) {
  48.             var key = "Accel Shift H";
  49.             try {
  50.                 key = branch.getCharPref("ehh-selectelement_key");
  51.             } catch(e2) {}
  52.             abpConfigureKey("ehh-selectelement", key);
  53.         }
  54.     }
  55. }
  56.  
  57. function ehhGetBrowser() {
  58.     if ("getBrowser" in window)
  59.         return getBrowser();
  60.     else if ("messageContent" in window)
  61.         return window.messageContent;
  62.     else
  63.         return document.getElementById("frame_main_pane") || document.getElementById("browser_content");
  64. }
  65.  
  66. function ehhHideTooltips() {
  67.     document.getElementById("ehh-helpbox").hidePopup();
  68.     document.getElementById("ehh-commandlabel").hidePopup();
  69.     document.getElementById("ehh-viewsource").hidePopup();
  70. }
  71.  
  72. function ehhDisableElement(id, disable) {
  73.     var element = document.getElementById();
  74.     if (element)
  75.         element.setAttribute("disabled", disable);
  76. }
  77.  
  78. function ehhHideElement(id, hide) {
  79.     var element = document.getElementById();
  80.     if (element)
  81.         element.hidden = hide;
  82. }
  83.  
  84. function ehhFillPopup(event) {
  85.     var popup = event.target.getAttribute("id");
  86.     if (popup.match(/-/g).length != 2)
  87.         return;
  88.  
  89.     popup = popup.replace(/popup$/, '');
  90.  
  91.     var browser = ehhGetBrowser();
  92.     var enabled = ehhCanSelect(browser);
  93.     var running = (enabled && browser == ehhAardvark.browser);
  94.  
  95.     document.getElementById(popup + "ehh-selectelement").setAttribute("disabled", !enabled);
  96.     document.getElementById(popup + "ehh-selectelement").hidden = running;
  97.     document.getElementById(popup + "ehh-stopselection").hidden = !running;
  98. }
  99.  
  100. function ehhCanSelect(browser) {
  101.     if (!browser || !browser.contentWindow || 
  102.             !(browser.contentDocument instanceof HTMLDocument) ||
  103.             !browser.contentDocument.body)
  104.         return false;
  105.  
  106.     var location = browser.contentWindow.location;
  107.     if (location.href == "about:blank")
  108.         return false;
  109.  
  110.     if (location.hostname == "" &&
  111.             location.protocol != "mailbox:" &&
  112.             location.protocol != "imap:" &&
  113.             location.protocol != "news:" &&
  114.             location.protocol != "snews:")
  115.         return false;
  116.  
  117.     return true;
  118. }
  119.  
  120. function ehhSelectElement() {
  121.     var browser = ehhGetBrowser();
  122.     if (!browser.contentWindow || !browser.contentDocument)
  123.         return;
  124.  
  125.     if (browser == ehhAardvark.browser) {
  126.         ehhStop();
  127.         return;
  128.     }
  129.  
  130.     ehhAardvark.start(browser);
  131. }
  132.  
  133. function ehhStop() {
  134.     ehhAardvark.quit();
  135. }
  136.